import java.util.Iterator;
import java.util.NoSuchElementException;

/**
 * A randomized queue is similar to a stack or queue, except that the item removed is chosen uniformly at random from items in the data structure.
 */
public class RandomizedQueue<Item> implements Iterable<Item> {
    /**
     * construct an empty randomized queue
     */
    public RandomizedQueue() {
    }

    /**
     * is the queue empty?
     */
    public boolean isEmpty() {
        return true;
    }

    /**
     * return the number of items on the queue
     */
    public int size() {
        return 0;
    }

    /**
     * add the item
     */
    public void enqueue(Item item) {
        if (item == null)
            throw new NullPointerException();

    }

    /**
     * delete and return a random item
     */
    public Item dequeue() {
        if (isEmpty())
            throw new NoSuchElementException();
        return null;
    }

    /**
     * return (but do not delete) a random item
     */
    public Item sample() {
        if (isEmpty())
            throw new NoSuchElementException();
        return null;
    }

    /**
     * return an independent iterator over items in random order
     */
    public Iterator<Item> iterator() {
        return null;
    }
}